package db;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import com.modeliosoft.modelio.javadesigner.annotations.objid;
import kino.Adresse;
import kino.Kinokette;

public class AdresseDAO {

    public static void store(final Adresse adresse) {
        java.sql.Connection conn = db.MySQLConnection.getConn();
        if(conn != null)
        {
            // SQL-Statement erzeugen.
            Statement query;
            try {
                query = conn.createStatement();
                // Ergebnistabelle erzeugen und abholen.
                String sql = "INSERT INTO `kinodb`.`adresse` (`ort`,`plz`,`str`,`hausnummer`,`zusatz`)"
                +"VALUES "+
                "('"+ adresse.getOrt()+"',"+
                "'"+ adresse.getPlz()+"',"+
                "'"+ adresse.getStr()+"',"+
                "'"+ adresse.getHausnummer()+"',"+
                "'"+ adresse.getZusatz()+"')";
                query.execute(sql);
                sql = "select idadresse from `kinodb`.`adresse`";
                ResultSet result = query.executeQuery(sql);
                // Ergebniss?tze durchfahren
                while (result.next()) {         
                    adresse.setId(Integer.parseInt(result.getString("idadresse")));
                }
            } catch (SQLException e) { e.printStackTrace(); }
        }
    }

    public static Adresse load(final int id) {
        java.sql.Connection conn = db.MySQLConnection.getConn();
        Adresse neuesAdresseObjekt = null;
        if(conn != null)
        {
            // SQL-Statement erzeugen.
            Statement query;
            try 
            {
                query = conn.createStatement();
                // Ergebnistabelle erzeugen und abholen.
                String sql = "select * from `kinodb`.`adresse` where idadresse = " + id + "";
                query.execute(sql);
                ResultSet result = query.executeQuery(sql);
                // Ergebniss?tze durchfahren.
                result.next(); 
                neuesAdresseObjekt = new Adresse(result.getString("ort"), result.getString("plz"),result.getString("str"),result.getString("hausnummer"),result.getString("zusatz"));
                neuesAdresseObjekt.setId(Integer.parseInt(result.getString("idadresse")));
                
            } catch (SQLException e) { e.printStackTrace(); }
        }
        return neuesAdresseObjekt;
    }
    
    public static ArrayList<Adresse> loadAll() {
        java.sql.Connection conn = db.MySQLConnection.getConn();
        ArrayList<Adresse> neuesAdresseListenObjekt = new ArrayList<Adresse>();
        if(conn != null)
        {
            // SQL-Statement erzeugen.
            Statement query;
            try 
            {
                query = conn.createStatement();
                // Ergebnistabelle erzeugen und abholen.
                String sql = "select idadresse from `kinodb`.`Adresse`";
                query.execute(sql);
                ResultSet result = query.executeQuery(sql);
                // Ergebniss?tze durchfahren.
                while(result.next()){
                	neuesAdresseListenObjekt.add(AdresseDAO.load(result.getInt(1)));
                }
            } catch (SQLException e) { e.printStackTrace(); }
        }
        return neuesAdresseListenObjekt;
    }

}
